A communication network, such as internet, comprised of a number of servers connected via a common network. Each server serves, i.e. manages, a number of processes that may be initiated by a client device using the network. The operations of such networks are commonly known by one of ordinary skilled in the art.
Referring to FIG. 1, a simplified block diagram of a communication network 100 is shown. Communication network 100 provides a common communication medium 101 for communications between a number of different client devices. Such devices may include computers, wire-line and wireless telephones. To manage the operations between such devices, common communication medium 101 connects servers 121-24. Each device in order to use the network 100 communicates with a server selected from the available servers 121-24. Network 100 may have many servers, however, only four servers are shown for simplicity. Each server may be serving a number of devices. Devices 171-73 and 174 are schematically shown, for example, where respectively each connecting to servers 121 and 124 at what commonly known as internet protocol (IP) addresses 131-34 respectively. Each device in network 100 would have a unique IP address identification.
Other devices may be connected to servers 121-24, which are not shown.
A selected server starts a process on its processor for processing the needs of the client device. The needs may include communicating to another client device served by the same server or another server. A server may run multiple number of processes in order to serve each client device. Such processes at each server are shown by way of processes "1" through "m", and collectively at each server as processes 161-64.
A client device may need more than processes in order to use network 100. Each process independently control a function or a feature of the communication requested by the client device. For example, a communication requested by a client device may include communications of voice, data and video where each requires an independent process. The selected server may also run another process for control and management of the related processes.
Each server requires having a memory device, such as memory devices 151-54 respectively associated with servers 121-24, for storing record data associated with each process. The server that has been selected by the client device creates and maintains such record data, in effect, takes ownership of the record data.
The selected server also sends a copy of the record data associated with each process to other servers. Other servers after receiving the record data store the record data in their associated memory devices. As a result, the memory device of each server contains a copy of the record data that is similar to a copy of the record data at other servers.
The network 100 attempts to maintain consistency between record data stored at the memory device of each server through periodic communications between the server. Such periodic communications update the record data of each process every time the selected server, the record data owner, updates the record data. Updating such record data requires extensive communication traffic in the network 100, which places a heavy burden of data traffic on common communication medium 101.
To effectuate the record data management, each record data is required to have a key identifier in addition to an update sequence number. The update sequence number is incremented each time the data record is updated. The key identifier is shown by way of a set of symbols shown as S.sub.N.sup.m. The "N" identifies the server that owns (selected) the record data, and "m" identifies the process within the selected server. For example, record data S.sub.1.sup.m is a record data 180 for process "m" owned by server "1." i.e. server 121. A record data 185 is a record data for process "M" at server 124. All record data are kept in a table format, for example, at memory table 186 at memory device 154.
Each record data may have different parts. For example, record data 180 includes a character field 181 identifying the process, internet protocol (IP) address 182 identifying the client device, "unreliable datagram protocol" (UDP) ports address 183 identifying the logical address of the process at the client device where the process is running, and optional data 184 for different purposes. The record length may vary in different networks. Normally, the UDP address is 16 bits long, and IP address 32 bits. Longer or shorter record length is also possible.
In case a server shuts down or goes out of service for any reason, consistency of each record data stored at each memory device allows continuous and uninterrupted services for the client devices. Data owned by the out-of-service server is systematically adopted by one or more servers to allow continuous and uninterrupted services for the client devices. The network 100 requires a substantial communication bandwidth at common communication medium 101 to manage and accommodate updating such record data.
Therefore, there is a need for a method and apparatus in a communication network for updating and maintaining record data.